<?php

/*
  |--------------------------------------------------------------------------
  | Application Routes
  |--------------------------------------------------------------------------
  |
  | Here is where you can register all of the routes for an application.
  | It's a breeze. Simply tell Laravel the URIs it should respond to
  | and give it the Closure to execute when that URI is requested.
  |
 */


Route::filter('auth', function() {
    if (Auth::guest()) {
        return Redirect::guest('/')->with('msg', 'Debes identificarte primero.');
    }
});


//Pagina principal donde está el formulario de identificación
Route::get('/', function() {
    return Redirect::to('home');
});

//Página oculta donde sólo puede ingresar un usuario identificado
Route::get('nombres', array('before' => 'auth', function() {
return Redirect::to('nombres');
}));

Route::get('login', array('uses' => 'HomeController@getLogin', 'before' => 'guest'));

//Procesa el formulario e identifica al usuario
Route::post('login', array('uses' => 'AuthController@doLogin', 'before' => 'guest'));
//Desconecta al usuario
Route::get('logout', array('uses' => 'AuthController@doLogout', 'before' => 'auth'));


Route::get('home', array('as' => 'home', 'uses' => 'HomeController@getIndex'));
Route::post('ajax/home/search', 'HomeController@postSearch');

Route::group(array('prefix' => 'admin', 'before' => 'auth'), function() {

    /**
     * Grupo con el prefijo nombres
     */
    Route::group(array('prefix' => 'nombres'), function() {

        Route::get('', array('as' => 'nombres', 'uses' => 'NombresController@getIndex'));
        Route::get('{id}', 'NombresController@getShow');
        Route::get('{id}/edit', 'NombresController@getEdit');
        Route::put('{id}', 'NombresController@putUpdate');
        //Route::get('{iddpe}/delete', 'NombresController@getDelete');
        Route::post('', 'NombresController@postCreate');
    });

    /**
     * Grupo con el prefijo ajax dentro de admin
     */
    Route::group(array('prefix' => 'ajax'), function() {

        /**
         * Grupo con el prefijo nombres
         */
        Route::group(array('prefix' => 'nombres', 'before' => 'auth'), function() {

            Route::post('search', 'NombresController@postSearch');
            Route::post('create', 'NombresController@postCreate');
            //Route::post('edit', 'NombresController@edit');
            Route::delete('delete', 'NombresController@deleteDelete');
        });
    });
});


/**
 * Para cualquier ruta desconocida, lo mandamos a la home
 */
Route::get('{any?}', function() {
    return Redirect::to('/');
});
